// 配置路由器  1 创建路由器文件 2 在入口文件中引入 3 应用路由
const express=require('express');
// 引入模型对象
const Users=require('../modules/users');
const router=new express.Router();

// 查看用户名和密码是否符合规则
// 用户名：user_name 以字母开头 字母 数字 下划线 用户名长度3-20
// 密码：password 数字 字母 下划线 密码长度4-15
const user_name_reg=/^[A-Za-z][A-Za-z0-9_]{2,19}$/
const password_reg=/^[A-Za-z0-9_]{4,15}$/
// 注册
router.post('/register',async(req,res)=>{
    // 收集用户名和密码
    console.log(req.body);
    const {user_name,password}=req.body;
    // console.log(user_name_reg.test(user_name));
    if(user_name_reg.test(user_name)&&password_reg.test(password)){
        // 当符合规则 将其存放到数据库当中
        // 1 查看数据库和服务器是否连接 有DB文件 如果有引入 使用async awaut 确保数据库连接成功 没有建立
        // 2 存储数据要看是否有对应的集合 有直接使用 没有创建
        try{
            await Users.create(req.body);
            res.send('注册成功');
        }catch(e){
            console.log(e);
            res.send('网络延迟，请重新注册');
        }
    }else{
        res.send('用户名和密码不符合规则，请求重新注册');
    }
    
})
// 登录
router.post('/login',async(req,res)=>{
    const {user_name,password}=req.body;
    if(user_name_reg.test(user_name)&&password_reg.test(password)){
        try{
            const user=await Users.findOne({user_name});
        // user有两类 一类是查询到的用户名密码 一类是null
        if(user){
            if(user.password==password){
                res.send('登录成功');
            }else{
                res.send('密码错误');
            }
        }else{
            res.send('该用户不存在，请注册');
        }
        }catch(e){
            console.log(e);
            res.send('网络延迟');
        }
    }else{
        res.send('用户名和密码不符合规则');
    }
})
// 修改密码
// 删除密码

// 暴露
module.exports=router;